package org.nuonuo.sdk.model.req;

import org.nuonuo.sdk.valid.Validator;

import javax.validation.constraints.NotNull;

/**
 * @Version 1.0
 * @Author az
 * @Date 2024-04-08 13:53:50
 * @ClassName InvoiceRedReq
 * @Description 发票快捷冲红
 */
public class InvoiceFastRedReq extends Validator {
    /**
     * 订单号,每个企业唯一；自动开具的数电红票，支持传该值替换掉自动开具红票诺诺生成的订单号，仅支持替换一次
     */
    @NotNull(message = "订单号必填")
    private String orderNo;
    /**
     * 销方企业税号（需要校验与开放平台头部报文中的税号一致）
     */
    @NotNull(message = "销方企业税号必填")
    private String taxNum;
    /**
     * 红字确认单编号,数电红票必传；且必须在备注中注明“被冲红蓝字数电票号码：YYYYYYYYY 红字发票信息确认单编号：XXXXXXXXX”字样，其中“Y”为数电蓝票的号码，“X”对应的红字确认单编号（由接口自动拼接）
     */
    @NotNull(message = "红字确认单编号必填")
    private String billNo;
    /**
     * 红字确认单uuid
     */
    @NotNull(message = "红字确认单uuid必填")
    private String billUuid;
    /**
     * 分机号（只能为空或者数字；不传默认取蓝票的分机，传了则以传入的为准）
     */
    private String extensionNumber;
    /**
     * 开票员id（诺诺系统中的id）
     */
    private String clerkId;
    /**
     * 部门门店id（诺诺系统中的id）
     */
    private String deptId;
    /**
     * 单据时间
     */
    private String orderTime;
    /**
     * 对应蓝字增值税发票代码
     */
    private String invoiceCode;
    /**
     * 对应蓝字增值税发票号码,若传入20位发票号码，则当做数电票号码处理
     */
    private String invoiceNumber;
    /**
     * 对应蓝字数电票号码,蓝票为数电票时，请传入该字段
     */
    private String elecInvoiceNumber;
    /**
     * 对应蓝票发票流水号
     */
    private String invoiceId;
    /**
     * 数电发票票种： bs:电子发票(增值税专用发票), pc:电子发票(普通发票) es:数电纸质发票(增值税专用发票) ec:数电纸质发票(普通发票)；注：1、默认为对应蓝票数电票种； 2、蓝票为es 时可选
     */
    private String invoiceLine;
    /**
     * 回调地址（开票结果回调优先取传入的回调地址，若不传则取企业资质中配置的地址）
     */
    private String callBackUrl;

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getTaxNum() {
        return taxNum;
    }

    public void setTaxNum(String taxNum) {
        this.taxNum = taxNum;
    }

    public String getBillNo() {
        return billNo;
    }

    public void setBillNo(String billNo) {
        this.billNo = billNo;
    }

    public String getBillUuid() {
        return billUuid;
    }

    public void setBillUuid(String billUuid) {
        this.billUuid = billUuid;
    }

    public String getExtensionNumber() {
        return extensionNumber;
    }

    public void setExtensionNumber(String extensionNumber) {
        this.extensionNumber = extensionNumber;
    }

    public String getClerkId() {
        return clerkId;
    }

    public void setClerkId(String clerkId) {
        this.clerkId = clerkId;
    }

    public String getDeptId() {
        return deptId;
    }

    public void setDeptId(String deptId) {
        this.deptId = deptId;
    }

    public String getOrderTime() {
        return orderTime;
    }

    public void setOrderTime(String orderTime) {
        this.orderTime = orderTime;
    }

    public String getInvoiceCode() {
        return invoiceCode;
    }

    public void setInvoiceCode(String invoiceCode) {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceNumber() {
        return invoiceNumber;
    }

    public void setInvoiceNumber(String invoiceNumber) {
        this.invoiceNumber = invoiceNumber;
    }

    public String getElecInvoiceNumber() {
        return elecInvoiceNumber;
    }

    public void setElecInvoiceNumber(String elecInvoiceNumber) {
        this.elecInvoiceNumber = elecInvoiceNumber;
    }

    public String getInvoiceId() {
        return invoiceId;
    }

    public void setInvoiceId(String invoiceId) {
        this.invoiceId = invoiceId;
    }

    public String getInvoiceLine() {
        return invoiceLine;
    }

    public void setInvoiceLine(String invoiceLine) {
        this.invoiceLine = invoiceLine;
    }

    public String getCallBackUrl() {
        return callBackUrl;
    }

    public void setCallBackUrl(String callBackUrl) {
        this.callBackUrl = callBackUrl;
    }
}
